package biblioteca.model;

/**
 * Classe responsavel pelo relacionamento entre as Classe Usuario e Biblioteca.
 * Faz a modelagem da Entidade Locacao.
 * @author willen leiros e fabio queiroz 
 *
 */
public class Locacao {

	private Usuario usuario;
	private ItemAcervo item;
	private String dataAluguel;
	private String dataDevolucao;
	private String dataEntrega;
	private double custo;
	
	/**
	 * 
	 * Construtor da classe inicializa o objeto com valores default
	 * 
	 */
	
	public Locacao(){
		
		this.usuario = null;
		this.item = null;
		this.dataAluguel = null;
		this.dataDevolucao = null;
		this.dataEntrega = null;
		this.custo = 0;
	}
	
	/**
	 * Retorna a data do aluguel do ItemAcervo.
	 * @return dataAluguel
	 */

	public String getDataAluguel() {
		return dataAluguel;
	}
	
	/**
	 * Retorna a data da devolucao do ItemAcervo.
	 * @return dataDevolucao
	 */

	public String getDataDevolucao() {
		return dataDevolucao;
	}
	
	/**
	 * Seta a data do aluguel
	 * @param dataAluguel Parametro do tipo String que representa a data do aluguel.
	 */
	public void setDataAluguel(String dataAluguel) {
		this.dataAluguel = dataAluguel;
	}

	/**
	 * Seta a data de devolucao.
	 * @param dataDevolucao Parametro do tipo String que representa a data de devolucao.
	 */
	public void setDataDevolucao(String dataDevolucao) {
		this.dataDevolucao = dataDevolucao;
	}
	
	/**
	 * Retorna a data de entrega do ItemAcervo.
	 * @return dataEntrega
	 */
	public String getDataEntrega() {
		return dataEntrega;
	}

	/**
	 * Seta a data de entrega.
	 * @param dataEntrega Parametro do tipo String que representa a data de entrega do ItemAcervo 
	 */
	public void setDataEntrega(String dataEntrega) {
		this.dataEntrega = dataEntrega;
	}

	/**
	 * Retorna o usuario.
	 * @return usuario 
	 */
	public Usuario getUsuario() {
		return usuario;
	}

	/**
	 * Seta o usuario.
	 * @param usuario Parametrodo tipo usuario que representa o objeto usuario.
	 */
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	/**
	 * Retorna um item.
	 * @return item 
	 */
	public ItemAcervo getItem() {
		return item;
	}

	/**
	 * Seta o item.
	 * @param item Parametro do tipo ItemAcervo que representa um objeto item.
	 */
	public void setItem(ItemAcervo item) {
		this.item = item;
	}

	/**
	 * Retorna o custo da locacao.
	 * @return custo 
	 */
	public double getCusto() {
		return custo;
	}

	/**
	 * Seta o custo.
	 * @param custo Parametro do tipo double que representa o valor da multa de um ItemAcervo atrasado.
	 */
	public void setCusto(double custo) {
		this.custo = custo;
	}	
	
}
